package logger

import (
	"github.com/astaxie/beego"
	rotatelogs "github.com/lestrrat-go/file-rotatelogs"
	log "github.com/sirupsen/logrus"
)

var Logger = log.New()

/* 日志轮转相关函数
   `WithLinkName` 为最新的日志建立软连接
   `WithRotationTime` 设置日志分割的时间，隔多久分割一次
   WithMaxAge 和 WithRotationCount二者只能设置一个
    `WithMaxAge` 设置文件清理前的最长保存时间
    `WithRotationCount` 设置文件清理前最多保存的个数
*/

// var ErrorLogs *errorLog.ErrorLogger
func init() {

	logger_path := beego.AppConfig.String("logger_path") //读取配置
	path := logger_path

	// 下面配置日志每隔 1 分钟轮转一个新文件，保留最近 3 分钟的日志文件，多余的自动清理掉。
	writer, _ := rotatelogs.New(
		path+".%Y%m%d",
		rotatelogs.WithLinkName(path),
		rotatelogs.WithMaxAge(-1),      //保留最近3小时的日志24*time.Hour
		rotatelogs.WithRotationTime(7), //24*time.Hour
	)
	Logger.SetOutput(writer)
	Logger.SetLevel(log.InfoLevel) // 设置最低日志输出等级
	// 设置日志格式为json格式
	Logger.SetFormatter(&log.JSONFormatter{})
	Logger.SetReportCaller(true)

	Logger.Info("hello world")
}
